BITANDOFFHEX

The BITANDOFFHEX field specifier (case sensitive) allows you find documents with a field whose hexadecimal string value does not result in 0 when a bit-wise AND operation is performed between this value and a specified hexadecimal string.

Format

FieldText=BITANDOFFHEX{nn,yourHexadecimalString}:yourBitFields
nn The number of 16 bit chunks to shift the value in yourHexadecimalString and in yourBitFields by before performing the bit-wise AND operation (this option allows you to store sparse bit masks more efficiently).
yourHexadecimalString A hexadecimal string. A document returns only if one of yourBitFields contains a value that result in a non-zero value when a bit-wise AND operation is performed between this value and the specified hexadecimal string.
yourBitFields One or more fields. A document returns only if it contains one of these fields, and if this field contains a hexadecimal string that results in a non-zero value when a bit-wise AND operation is performed between it and yourHexadecimalString. Separate multiple fields with colons (:). There must be no space before or after a colon.

Example

FieldText=BITANDOFFHEX{01,0a001}:BitOffField

The binary representation of the hexadecimal value 01,0a001 is compared with the binary representations of the hexadecimal values that BitOffField fields in IDOL Content Component contain. Only documents whose BitOffField values result in a non-zero value when they are compared to the binary representation of 01,0a001 (after they have been left shifted by one 16 bit chunk) are returned.

If the BitOffField, for example, contains the value 1,bc01, the document returns, while a document whose BitOffField contains the value 0,5ffeffff does not return.

Field value comparison:

nn,hexstring Hex Binary
01,0a001 A0010000 1010 0000 0000 0001 0000 0000 0000 0000
1,bc01 BC010000 1011 1100 0000 0001 0000 0000 0000 0000
   

1010 0000 0000 0001 0000 0000 0000 0000

This evaluates to true.

nn,hexstring Hex Binary
01,0a001 A0010000 1010 0000 0000 0001 0000 0000 0000 0000
0,5ffeffff 5FFEFFFF 0101 1111 1111 1110 1111 1111 1111 1111
   

0000 0000 0000 0000 0000 0000 0000 0000

This evaluates to false.